package io.geekidea.springbootplus.system.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import io.geekidea.springbootplus.framework.common.service.BaseService;
import io.geekidea.springbootplus.framework.core.pagination.Paging;
import io.geekidea.springbootplus.system.entity.SysCategory;
import io.geekidea.springbootplus.system.entity.SysProduct;
import io.geekidea.springbootplus.system.param.SysProductPageParam;
import io.geekidea.springbootplus.system.vo.SysProductQueryVo;

import java.io.Serializable;
import java.util.List;

public interface SysProductService extends BaseService<SysProduct> {

    //增加商品
    boolean saveSysProduct(SysProduct sysProduct) throws Exception;


    //修改商品
    boolean updateSysProduct(SysProduct sysProduct) throws Exception;

    //删除商品
    boolean deleteSysProduct(Integer id) throws Exception;


    Paging<SysProductQueryVo> getSysProductPageListByParam(SysProductPageParam sysProductPageParam) throws Exception;

    //批量 上架
    boolean updateBatchSysProductUpStatus(List<Integer> ids);

    //批量 下架
    boolean updateBatchSysProductDownStatus(List<Integer> ids);

    //批量删除 逻辑删除
    boolean deleteBatchSysProduct(List<Integer> ids);


    //查询单个商品信息
    SysProductQueryVo findSysProduct(Integer id);


    //查询热销 产品 获得前 4 个
    List<SysProductQueryVo> findSysProductBySales() throws Exception;



    //查询标签 产品 获得前 4 个
    List<SysProductQueryVo> getSysProductByTags(String tags) throws Exception;



}
